1. Field of the Invention
The present invention relates to fibre channel switched networks and particularly to a system and method for selecting frame paths in a fibre channel switched network that takes into account available bandwidth considerations.
2. Description of the Prior Art
FIG. 1 depicts generally a Storage Area Network (SAN) 10 which is a dedicated high performance network capable of moving data between heterogeneous servers 16a, 16b, . . . , 16n and storage resources such as disk drives and arrays (RAIDS) 18 or tape storage devices and/or libraries 20. As shown in FIG. 1, a Local Area Network (LAN) 12 is provided which enables the sharing of data files among groups of user clients, such as desktop computers 14a, 14b, . . . , 14n. The LAN 12 may comprise an Internet Protocol (IP) network such as Ethernet and provides client/server connectivity between the desktop client 14a, and SAN server devices 16a, 16b, . . . , 16n using messaging communications protocols like TCP/IP. The SAN 10 includes a separate dedicated network, such as a Fiber Channel network 25, that preferably comprises a switched topology or “fabric” including fiber channel interconnect devices such as switches, 30, routers 22 and high speed serial links 26 interconnecting the servers 16a, 16b, . . . , 16n to the storage subsystems 18, 20 for storage networking. As known, such a SAN architecture 10 advantageously minimizes any traffic conflicts and provides for increased scalability, availability, and file transfers over longer distances as compared to SANs of traditional messaging networks comprising bus architectures. The Fiber Channel based SAN, such as shown in FIG. 1, combines the high performance of an I/O channel and the advantages of a network (connectivity and distance of a network) using similar network technology components like routers 22, switches 30 and gateways (not shown). Thus, SAN products do not function like a server. Rather, the SAN product processes block I/O protocols, such as Fiber Channel Protocol (SCSI-FCP) or Fiber Connection (FICON), for some other system, e.g., a server.
As known, the fiber channel switching fabric 25 is organized into logical entities including ports, nodes and platforms. For instance, fiber channel “nodes” are physical devices, e.g., disk drive or disk arrays, workstations, storage devices, etc., that may be a source or destination of information to/from other nodes. Each node comprises one or more “ports” which are the hardware interfaces that connect all fiber channel devices to the topology via links, i.e., electrical or optical transmit fibers, e.g. cables of copper or optical fiber. Ports are designated and have different attributes depending upon the switch topology in which they are implemented, e.g., point-to-point, arbitrated loop, fabric.
In Fibre Channel networks comprising a switching fabric, such as shown in FIG. 1, switches 30 communicate to each other over switch-to-switch links via Expansion or “E”-ports. A part of each switch's function in the network is to generate a Link State Record (“LSR”) 99 that completely describes the connectivity of a switch to all switches to which it is directly attached. The LSR 99 generated at a switch is communicated to all other switches connected to that switch to provide the switch fabric with information such as the status of each switch port. The ANSI Fibre Channel Switch Fabric-3(FC-SW-3) rev 6.01 (NCITS) working draft proposed American National Standard for Information Technology (Jun. 1, 2002), incorporated herein by reference, describes in greater detail the composition of the LSR that is communicated. For instance, as described in the proposed ANSI Fibre Channel Switch Fabric-3 standard, basic information included in the LSR includes, but is not limited to: whether a particular port is up, the speed of a link connected to the port, e.g., 1 Gbit/sec, 2 Gbit/sec, etc., the LSR age, an options field, a length, checksum bytes, etc.
Typically, the LSR header is 24 bytes having a configuration as follows:
byte 1Typebyte 2Reservedbytes 3-4LSR Agebytes 5-8Optionsbytes 9-12Link State IDbytes 13-16Advertising Domain IDbytes 17-20Link State Incarnationbytes 21-22Checksumbytes 23-24LSR Length
From this information, whenever a switch comes up in the Fibre Channel network, it may then look at the speed of the link and the number of hops to determine the cost of a particular path, the proposed cost being a combination of the speed of the links versus the number of switches it goes to. From this information, a shortest path may be calculated using a well known algorithm, e.g., a Fabric Shortest Path First (FSPF) path selection protocol. A more detailed description of the FSPF algorithm may be found at the T11 standards website at section (8) of the D Switch Fabric-2 specification, revision 5.4, incorporated by reference herein.
Within a Storage Area Network (SAN) a path selection process for routing frames only considers the link cost in the fibre channel switched fabric to determine the best path for routing frames through fibre switches. The link cost is a measurement that is calculated by the following formula:Link Cost=S*(1.0625e12/Baud Rate)
By default, S is an administrative value, typically set to one. The number 1.0625e12 is exemplary and for purposes of discussion is equal to 1000 times 1.0625e9 (which represents a 1 Gb/s link speed). Thus, for example, when the Link Cost is calculated for a 1.0625 Gb/s Fibre Channel Link, this calculation yields (with S set to 1.0): 1.0*(1.0625e12/1.0625e9)=1000. It should be understood that the 1.0625e12 number is configurable and may change in accordance with link speed. Currently, link cost only considers link speed (i.e., the Baud rate). However, while link speed is one important measurement to consider in best frame path selection, there are several other factors that may be considered as well. One of these additional factors would be the current congestion or amount of available bandwidth for each link along each available path through fabric.
It would be highly desirable to provide a frame path selection system and method that takes into account available bandwidth of each port (link) and the link cost, in real time.